Repository navigation
ci: repin standards to e064539 (clears Allowlist Preflight); render deploy template from init - #171
Conversation
Bring every tracked `*.k9.ncl` / `*.k9` file into line with the K9
contract v1.0.0 that standards' K9-DEED conformance lane enforces:
- 98 panel-clade configs: `K9!` magic line, SPDX header, and a
`pedigree` envelope (schema_version, component_type, security.leash
'Kennel, metadata.name/version/author, side_effects). The old top-level
name/version/magic_number/author/leash keys are folded into it.
Budgets.idr is unchanged (gen-budgets --check is current).
- 4 layout presets: `K9!` envelope with an inline 'Yard pedigree; the
preset is checked against pedigree-layout.ncl's contracts.
pedigree-layout.ncl exports its contracts by explicit binding (a bare
`{ Foo, }` field declares Foo without defining it) and PaneSizesSum100
uses std.contract.from_validator. database-design's `verisim_panel`
is renamed to the schema's `verisimdb_panel`.
- svc/k9 templates and the container deploy template are renamed to
`.k9.ncl.in` (templates are not instances, per the contract); the
setup-repo example is replaced by standards' canonical one, and the
references in the READMEs, manifests and TOPOLOGY are updated.
- generated/k9iser/*.k9 are untracked: .gitignore already ignores them.
Checked with standards' k9-validate.sh --strict --layer L2 at
1fdc61c: 106 pass, 1 routed (coordination.k9), 0 fail.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BCQeL169ZnUirUVaDXQLA3
hyperpolymath/standards moved to metadatastician/standards. Every caller pinned under the old owner failed at startup with "workflow was not found", because actions.lock recorded the old owner. - Repin governance, hypatia-scan, scorecard, secret-scanner and mirror to metadatastician/standards@1fdc61c (standards main), and rust-ci to metadatastician/standards@412a703 (same commit, new owner). - Add fork-governance.yml per standards' fork-governance ADOPTION.adoc: the DEED, K9-DEED and Hypatia lanes plus one PR comment, all at the same standards commit as canon-ref. DEED runs with require-files: false, since PanLL has no .deed files yet (standards #837). - hypatia-scan.yml loses its pull_request trigger (ADOPTION §3); fork-governance runs the Hypatia lane on PRs. - dogfood-gate.yml drops the k9-ecosystem validate-action job, which rejected the `K9!` envelope that contract v1.0.0 requires; the K9-DEED lane replaces it. - actions.lock: standards records re-keyed to metadatastician (owner_id 297579217), nested uses recomputed over every called file at 1fdc61c, and records nothing references any more are pruned. Verified with standards' check-actions-lock-gate.sh, validate-actions-lock.sh and update-actions-lock.sh --verify-local at 1fdc61c. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BCQeL169ZnUirUVaDXQLA3
These are k9iser output, already ignored by .gitignore. The previous commit meant to untrack them but the removal was dropped while the change was split into commits, so the K9-DEED lane still scanned them and failed (no SPDX header, not Nickel). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BCQeL169ZnUirUVaDXQLA3
Top-level permissions drop to contents: read; the job gets actions: read, contents: read and security-events: write, which is what hypatia-scan-reusable declares. pull-requests: write goes: the workflow no longer runs on pull_request. Addresses the Scorecard Token-Permissions alert on this file that fork-governance's Hypatia lane grades. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BCQeL169ZnUirUVaDXQLA3
The previous commit dropped it, so the workflow did not parse. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BCQeL169ZnUirUVaDXQLA3
…verage Addresses three review findings on this PR: - panel-clades/container/deploy.k9.ncl.in is now the v1.0.0-shaped template ported from rsr-template-repo (K9! envelope, pedigree with capability grant, side effects and a signature block), adapted to this layout (container/, compose.toml). `just container-init` renders it to container/deploy.k9.ncl once no placeholder is left, as rsr-template-repo does; before, nothing produced the deploy.k9.ncl the docs use. Checked: rendered with sample values via `just container-init`, it passes k9-validate --strict --layer L2. - template-hunt.k9.ncl.in grants net.fetch, fs.write and process.spawn, which its allow_* flags request (K9-S007), and carries the Ed25519 presence block a Hunt component needs (K9-S009). A copy with its TODOs filled now passes L2. - dogfood-gate.yml runs the standards K9-DEED lane on pushes to main/master, so a direct push is still checked; pull requests keep running it once, in fork-governance.yml. actions.lock records the call. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BCQeL169ZnUirUVaDXQLA3
The presets now open with the K9! envelope, which the nickel CLI cannot read. Document k9-validate.sh for conformance and evaluating the Nickel body (tail -n +2, run from layouts/ so the relative import resolves) for the pedigree-layout contracts. Checked: logic-and-proofs exports, and a preset whose pane sizes do not sum to 100 is still rejected. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BCQeL169ZnUirUVaDXQLA3
#166 was squash-merged at 85e71b2; this branch carries the two review-fix commits that landed after it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BCQeL169ZnUirUVaDXQLA3 # Conflicts: # .github/workflows/actions.lock # .github/workflows/dogfood-gate.yml # panel-clades/container/README.adoc # panel-clades/container/deploy.k9.ncl.in
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BCQeL169ZnUirUVaDXQLA3
Standards main now allows metadatastician/standards/.github/workflows/*@* in its canonical Actions allowlist, so pinning to it clears the governance Allowlist Preflight that has been red on main since the owner transfer. - Repin governance, hypatia-scan, scorecard, secret-scanner, mirror, fork-governance (all four lanes and canon-ref) and dogfood-gate's push K9 lane from 1fdc61c to e064539. Contracts checked: only hypatia-scan-reusable changed, and only by optional inputs; no job asks for a permission its caller does not grant. rust-ci stays on 412a703. - fork-governance passes hypatia-advisory to the summary, as standards' ADOPTION.adoc template now does. - actions.lock: the standards record is re-keyed; its nested uses are unchanged at e064539 and every leaf record matches standards' own lock. - panel-clades/Justfile: the deploy-template render moves to a private `_render-deploy-k9` recipe that both `init` and `container-init` call, since `init` already fills the container placeholders. After rendering it points container/0-AI-MANIFEST.a2ml at deploy.k9.ncl instead of the removed .in file. (Codex findings on #167.) Checked locally against standards e064539: all workflows parse; the duplicate-key, SPDX/permissions, lock gate, lock validator, verify-local and allowlist checks pass; K9 corpus 106 pass, 1 routed; `just init` and `just container-init` with scripted answers both render a deploy.k9.ncl that passes k9-validate --strict --layer L2 and rewrite the manifest. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BCQeL169ZnUirUVaDXQLA3
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Caution Review failedThe pull request is closed. No actionable comments were generated in the recent review. Summary
Merge Risk:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e6af8ebd7e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Every Actions workflow except CodeQL and the estate audit ends in #170 changes only
On 2026-11-02 at 09:56 the same workflows all started and ran on #169, with the same pins as The Actions-settings API and the run pages are not reachable from the session that opened this PR. Confirm on any of these runs, for example the Build Validation run. The fix is to re-allow, in the repository or account policy:
standards' This PR's own changes pass every gate locally against standards Generated by Claude Code |
_render-deploy-k9 rewrote only container/0-AI-MANIFEST.a2ml. The root 0-AI-MANIFEST.a2ml inventory also lists deploy.k9.ncl.in (line 102), so after rendering it named a file that no longer exists. Rewrite both manifests, and drop the "(template)" note from the inventory line. (Codex finding on #171.) Checked: `just init` and `just container-init` with scripted answers both render container/deploy.k9.ncl (passes k9-validate --strict --layer L2) and leave both manifests naming deploy.k9.ncl. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BCQeL169ZnUirUVaDXQLA3
|
SonarCloud Code Analysis fails with "C Security Rating on New Code", the same as on #167. I still can't see which issue. sonarcloud.io is blocked from the session driving this PR, and neither the check run nor the bot comment names the rule. #167 and this PR share two changed files: Once sonarcloud.io is allowed in this environment's network settings, or the rule and file:line are posted here, I'll fix it on this PR. I haven't re-run the check, because the analysis is deterministic. Generated by Claude Code |
|




Why
governance / Allowlist Preflighthas been red onmainsince ci: repin standards to metadatastician, adopt fork-governance, migrate K9 to contract v1.0.0 #166. Standards' canonical Actions allowlist has since gainedmetadatastician/standards/.github/workflows/*@*, so pinning to current standardsmain(e064539) clears it.What
1fdc61c→e064539:fork-governance.ymlcalls pluscanon-ref, and dogfood-gate's push-only K9 lane.hypatia-scan-reusablechanged, by optional inputs, and no job asks for a permission its caller does not grant.rust-cistays on412a703, which is green.fork-governance.ymlpasseshypatia-advisoryto the summary job, as standards' ADOPTION template now does.actions.lock:e064539.uses:set is unchanged ate064539, and every leaf record matches standards' own lock.panel-clades/Justfile:_render-deploy-k9recipe, called by bothinit(which already fills the container placeholders) andcontainer-init.container/0-AI-MANIFEST.a2mlatdeploy.k9.nclinstead of the removed.in.Verification (local, standards
e064539)check-actions-lock-gate.sh,validate-actions-lock.shandupdate-actions-lock.sh --verify-localall pass.check-allowed-actions.shfinds 0 of 24uses:refs uncovered. Onmainthis check is red.gen-budgets.sh --checkreports current.just initandjust container-init, run with scripted answers, both rendercontainer/deploy.k9.ncland rewrite the manifest.k9-validate.sh --strict --layer L2.Not in this PR
fleetreport-back job that ADOPTION now describes. panll has no.gitbot-fleet/enrolment.json, so it would only add empty rows.Generated by Claude Code